# virtualenv --no-site-packages venv

''' 
virtualenv是如何创建“独立”的Python运行环境的呢？原理很简单，
就是把系统Python复制一份到virtualenv的环境，用命令source venv/bin/activate进入一个virtualenv环境时，
virtualenv会修改相关环境变量，让命令python和pip均指向当前的virtualenv环境。

virtualenv为应用提供了隔离的Python运行环境，解决了不同应用间多版本的冲突问题。
'''

''' 
F:\gitee\python-demo\src\virtualenv_test>  virtualenv --no-site-packages venv
Using base prefix 'd:\\python'
New python executable in F:\gitee\python-demo\src\virtualenv_test\venv\Scripts\python.exe
Installing setuptools, pip, wheel...
done.
PS F:\gitee\python-demo\src\virtualenv_test> source venv/bin/activate
source : 无法将“source”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写，如果包括路径，请确保路径正确，然后再试一次。
所在位置 行:1 字符: 1
+ source venv/bin/activate
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (source:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
PS F:\gitee\python-demo\src\virtualenv_test> pip install jinja2
Collecting jinja2
  Downloading https://files.pythonhosted.org/packages/1d/e7/fd8b501e7a6dfe492a433deb7b9d833d39ca74916fa8bc63dd1a4947a671/Jinja2-2.10.1-py2.py3-none-any.whl (124kB)
     |████████████████████████████████| 133kB 409kB/s
Collecting MarkupSafe>=0.23 (from jinja2)
  Downloading https://files.pythonhosted.org/packages/65/c6/2399700d236d1dd681af8aebff1725558cddfd6e43d7a5184a675f4711f5/MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl
Installing collected packages: MarkupSafe, jinja2
Successfully installed MarkupSafe-1.1.1 jinja2-2.10.1
PS F:\gitee\python-demo\src\virtualenv_test> deactivate
deactivate : 无法将“deactivate”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写，如果包括路径，请确保路径正确，然后再试一次。
所在位置 行:1 字符: 1
+ deactivate
+ ~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (deactivate:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
 
PS F:\gitee\python-demo\src\virtualenv_test> 
    '''